function dnd(widgetcontainerID, widgetClass, dropzoneClass){
	// make widgets draggable + sortable
	$("#"+widgetcontainerID).sortable({
		opacity: 0.35
	});
	
	var dropzoneArr = $("."+dropzoneClass);
	
	// dropzone handling
	var prevDiv = null;
	var prevDropObj = null;
	
	$("."+dropzoneClass).droppable({
		drop: function(event, ui){
			if(this.innerHTML == ""){
				if(prevDropObj == this)
					$(prevDiv).remove();
				prevDropOjb = this;
				var div = $(document.createElement('div')).attr({
					name: $(ui.draggable).attr("id"),
					"class": widgetClass
				});
				$(div).css("background-image", ui.draggable.css("background-image"));
				$(div).draggable({ 
					revert: true,
					opacity: 0.35
				});
				$(this).append(div);
				prevDiv = div;
				$(ui.draggable).hide();
			}
		}
	});
	
	$("body").droppable({
		accept: "."+ widgetClass,
		drop: function( event, ui ) {
			$("#"+ui.draggable.attr("name")).show();
			$(ui.draggable).remove();
		}
	});		
}